﻿using System.Collections.Generic;
using System.Linq;

namespace AutoMerge
{
    /// <summary>
    /// Интерфейс службы слияния изменений
    /// </summary>
    public interface IMergeService
    {
        /// <summary>
        /// Объеденить изменения внесенные в файл
        /// </summary>
        /// <param name="logService">Внешняя служба протоколирования</param>
        /// <param name="resultFileName">Имя выходного файла</param>
        /// <param name="sourceFileName">Имя файла с исходным текстом</param>
        /// <param name="changedFileNames">Имена файлов с измененными текстами</param>
        IEnumerable<IGrouping<string, ModificationMarker>> MergeChangedFiles(ILogService logService, string resultFileName, 
            string sourceFileName, params string[] changedFileNames);

        void MergeChangedTexts(out string[] resultText, string[] sourceText, params string[][] changedTexts);
    }
}
